import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import postcssPxToViewport from "postcss-px-to-viewport";
import path from "path";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      // 绝对路径：C://abc/def/ghi/src
      // 相对路径：相对于文件本身的目录的路径
      "@": path.resolve(__dirname, "./src"),
    },
  },
  // vite自带的配置项
  css: {
    // postcss是一款 css翻译工具
    // 等价于在根目录里面配置的 postcss.config.js 文件
    postcss: {
      // 插件列表的
      plugins: [
        // 目的就是为了将px转换成vw，使得适配不同的设备。
        // 不支持行内样式的转换，只支持css、less、scss后缀的文件转换
        postcssPxToViewport({
          unitToConvert: "px", // 要转换的单位 px
          viewportWidth: 375, // 一倍图
          unitPrecision: 5, // 装换后的精度
          propList: ["*"],
          viewportUnit: "vw", // 装换后的单位
          fontViewportUnit: "vw",
          selectorBlackList: [], // 选择器黑名单
          minPixelValue: 1,
          mediaQuery: true, // 开启媒体查询替换
          replace: true, // 是否替换单位
          exclude: undefined,
          include: undefined,
          landscape: false, // 横屏是否适配
          landscapeUnit: "vw",
          landscapeWidth: 568,
        }),
      ],
    },
  },
  server: {
    proxy: {
      // 当匹配到api开头的
      // https://52coding.cc/yuantiku_api

      // http://127.0.0.1:5193/api 对应 https://52coding.cc/yuantiku_api
      // http://127.0.0.1:5193/api/6666 对应的是 https://52coding.cc/yuantiku_api/6666

      "^/api": {
        // 目标请求的地址
        target: "https://52coding.cc/yuantiku_api/",
        changeOrigin: true, // 换源
        rewrite(url) {
          // 此处接受的值是：/api/6666
          return url.replace(/^\/api/, "");
        },
      },
    },
  },
});
